package com.rustic.server.service;

import cn.xy.third.sms.enums.CaptchaType;

/**
 * 验证码发送
 *
 *  @author xy
 */

public interface CaptchaService {

    /**
     * 发送短信验证码
     *
     * @param captchaType 验证码类型
     * @param mobile      手机号
     */
    void sendSmsCaptcha(CaptchaType captchaType, String mobile);

    /**
     * 发送短信验证码
     *
     * @param captchaType  验证码类型
     * @param mobile       手机号
     * @param templateName 短信模板名
     */
    void sendSmsCaptcha(CaptchaType captchaType, String mobile, String templateName);

    /**
     * 发送邮箱验证码
     *
     * @param captchaType 验证码类型
     * @param email       邮箱
     */
    void sendEmailCaptcha(CaptchaType captchaType, String email);

    /**
     * 发送邮箱验证码
     *
     * @param captchaType  验证码类型
     * @param email        邮箱
     * @param templateName 短信模板名
     */
    void sendEmailCaptcha(CaptchaType captchaType, String email, String templateName);

    /**
     * 验证码验证
     *
     * @param captchaType 验证码类型
     * @param captcha     验证码
     * @param account     接收验证码的邮箱或手机号
     */
    void checkCaptcha(CaptchaType captchaType, String captcha, String account);

    /**
     * 获取二维码的临时授权码
     *
     * @param captchaType 验证码类型
     * @param userId      userId
     */
    String getAuthorizationCode(CaptchaType captchaType, int userId);

}
